#ifndef _STATE_H_
#define _STATE_H_
#include <string>
class GameManager; // will define later
namespace fe
{
    // this is a base class for all game states to come!
    class State
    {
    protected:
        State() {}
    public:
        virtual ~State(){}
        virtual void init() = 0;
        virtual void cleanup() = 0;
        virtual void update(GameManager* mgr) = 0;
        virtual void render(GameManager* mgr) = 0;
        virtual void handleEvents(GameManager* mgr) = 0;

    private:
        std::string m_name; // idk i may want to access states with their names
    };
}

#endif
